package com.proyecto.core.vista.echo.componentes;

import java.util.ResourceBundle;

import nextapp.echo2.app.ApplicationInstance;
import nextapp.echo2.app.CheckBox;
import nextapp.echo2.app.Column;
import nextapp.echo2.app.Extent;
import nextapp.echo2.app.Insets;
import nextapp.echo2.app.Label;
import nextapp.echo2.app.Row;
import nextapp.echo2.app.TextField;
import nextapp.echo2.app.layout.RowLayoutData;

import com.proyecto.core.modelo.echo.constantes.ParametrosIniciales;


public class CPTablaApoyoFour extends CPAreaDatos {
	
	// propiedades para inyectar via Spring
	private String   propiedadCompania;
	private String   propiedadCodigo;
	private String   propiedadNombre;
	private String   propiedadFormato;
	private String   propiedadValorDefecto;
	private TextField txtCodigo;
	private TextField txtNombre;
	private CheckBox chkValorDefecto;

	private int propiedadCodigoLong = 16;
	private int propiedadNombreLong = 32;
	private int propiedadFormatoLong = 8;
	private TextField txtFormato;
	
	/**
	 * Creates a new <code>CPTablaApoyo</code>.
	 */
	public CPTablaApoyoFour() {
		super();		
		// Add design-time configured components.
		initComponents();
		txtCodigo.setMaximumLength(propiedadCodigoLong);	
		txtNombre.setMaximumLength(propiedadNombreLong);
		txtFormato.setMaximumLength(propiedadFormatoLong);
	}

	/* (non-Javadoc)
	 * @see estandares2.AreaDatos#inicializar()
	 */
	public boolean configurarTabla() {
		super.configurarTabla();

		tablaTitulos.add(resourceBundle.getString("CoreVista.Persona.CPTablaApoyo.Codigo"));
		tablaTitulos.add(resourceBundle.getString("CoreVista.Persona.CPTablaApoyo.Nombre"));
		tablaTitulos.add(resourceBundle.getString("CoreVista.Persona.CPTablaApoyo.Formato"));
		tablaTitulos.add(resourceBundle.getString("CoreVista.Persona.CPTablaApoyo.ValorXDefecto"));
		
		tablaCampos.add("id."+propiedadCodigo);
		tablaCampos.add(propiedadNombre);
		tablaCampos.add(propiedadFormato);
		tablaCampos.add(propiedadValorDefecto);
		
		return true;
	}

	protected void configurarBinding() {
		super.configurarBinding();

		ListaBinding.add(new BindingCampo(txtCodigo, objetoDTO, "id." + propiedadCodigo,  true, true, true,
										  new Class[] {String.class},ParametrosIniciales.Formato_Letra_UPER,"Persona.CPTablaApoyo.Codigo"));
		ListaBinding.add(new BindingCampo(txtNombre, objetoDTO,propiedadNombre, false, true, true,
						                   new Class[] {String.class},ParametrosIniciales.Formto_Letra_Mixer,"Persona.CPTablaApoyo.Nombre"));
		
		ListaBinding.add(new BindingCampo(txtFormato, objetoDTO,propiedadFormato, false, true, true,
                new Class[] {String.class},ParametrosIniciales.Formto_Letra_Mixer,"Persona.CPTablaApoyo.Formato"));
		
		ListaBinding.add(new BindingCampo(chkValorDefecto,objetoDTO, propiedadValorDefecto, false, true, true,
										  new Class[] {String.class},ParametrosIniciales.Formto_Letra_Mixer,"Persona.CPTablaApoyo.ValorXDefecto"));
	}
	
	public String getpropiedadCompania() {
		return propiedadCompania;
	}

	public void setpropiedadCompania(String propiedadCompania) {
		this.propiedadCompania = propiedadCompania;
	}

	public String getpropiedadCodigo() {
		return propiedadCodigo;
	}

	public void setpropiedadCodigo(String propiedadCodigo) {
		this.propiedadCodigo = propiedadCodigo;
	}

	public String getpropiedadNombre() {
		return propiedadNombre;
	}

	public void setpropiedadNombre(String propiedadNombre) {
		this.propiedadNombre = propiedadNombre;
	}
	
	public String getpropiedadValorDefecto() {
		return propiedadValorDefecto;
	}

	public void setpropiedadValorDefecto(String propiedadValorDefecto) {
		this.propiedadValorDefecto = propiedadValorDefecto;
	}

	//--------
	public String getpropiedadFormato() {
		return propiedadFormato;
	}

	public void setpropiedadFormato(String propiedadFormato) {
		this.propiedadFormato = propiedadFormato;
	}
	//--------
	public int getPropiedadCodigoLong() {
		return propiedadCodigoLong;
	}

	public void setPropiedadCodigoLong(int propiedadCodigoLong) {
		this.propiedadCodigoLong = propiedadCodigoLong;	
		txtCodigo.setMaximumLength(propiedadCodigoLong);			
	}

	public int getPropiedadNombreLong() {
		return propiedadNombreLong;
	}

	public void setPropiedadNombreLong(int propiedadNombreLong) {
		this.propiedadNombreLong = propiedadNombreLong;
		txtNombre.setMaximumLength(propiedadNombreLong);		
	}

	//--------------
	public int getPropiedadFormatoLong() {
		return propiedadFormatoLong;
	}

	public void setPropiedadFormatoLong(int propiedadFormatoLong) {
		this.propiedadFormatoLong = propiedadFormatoLong;
		txtFormato.setMaximumLength(propiedadFormatoLong);		
	}

	/**
	 * Configures initial state of component.
	 * WARNING: AUTO-GENERATED METHOD.
	 * Contents will be overwritten.
	 */
	private void initComponents() {
		resourceBundle = ResourceBundle.getBundle(
				"com.proyecto.core.vista.echo.resource.localization.etiquetas",
				ApplicationInstance.getActive().getLocale());
		Column column2 = new Column();
		column2.setStyleName("2OpenLabs.Column.SeparadorInicial");
		add(column2);
		Row row1 = new Row();
		row1.setStyleName("2OpenLabs.Row.Datos");
		column2.add(row1);
		Label label1 = new Label();
		label1.setText(resourceBundle
				.getString("CoreVista.componentes.CPTablaApoyo.Tipo"));
		label1.setStyleName("2OpenLabs.Label.Etiqueta");
		row1.add(label1);
		txtCodigo = new TextField();
		txtCodigo.setWidth(new Extent(150, Extent.PX));
		txtCodigo.setStyleName("2OpenLabs.TextField.Campo");
		row1.add(txtCodigo);
		Row row4 = new Row();
		row4.setStyleName("2OpenLabs.Row.Datos");
		column2.add(row4);
		Label label2 = new Label();
		label2.setText(resourceBundle
				.getString("CoreVista.componentes.CPTablaApoyo.Nombre"));
		label2.setStyleName("2OpenLabs.Label.Etiqueta");
		row4.add(label2);
		txtNombre = new TextField();
		txtNombre.setWidth(new Extent(350, Extent.PX));
		txtNombre.setStyleName("2OpenLabs.TextField.Campo");
		row4.add(txtNombre);
		Row row2 = new Row();
		row2.setStyleName("2OpenLabs.Row.Datos");
		column2.add(row2);
		Label label3 = new Label();
		label3.setText(resourceBundle
				.getString("CoreVista.componentes.CPTablaApoyo.Formato"));
		label3.setStyleName("2OpenLabs.Label.Etiqueta");
		row2.add(label3);
		txtFormato = new TextField();
		txtFormato.setStyleName("2OpenLabs.TextField.Campo");
		row2.add(txtFormato);
		Row row5 = new Row();
		row5.setStyleName("2OpenLabs.Row.Datos");
		column2.add(row5);
		chkValorDefecto = new CheckBox();
		chkValorDefecto.setText(resourceBundle
				.getString("CoreVista.componentes.CPTablaApoyo.ValporDefecto"));
		chkValorDefecto.setStyleName("2OpenLabs.CheckBox.Default");
		RowLayoutData chkValorDefectoLayoutData = new RowLayoutData();
		chkValorDefectoLayoutData.setInsets(new Insets(
				new Extent(98, Extent.PX), new Extent(0, Extent.PX),
				new Extent(0, Extent.PX), new Extent(0, Extent.PX)));
		chkValorDefecto.setLayoutData(chkValorDefectoLayoutData);
		row5.add(chkValorDefecto);
	}

}
